package com.qiaofang.collectmanage.stub.feign.client;

import com.qiaofang.collectmanage.stub.bean.*;
import com.qiaofang.collectmanage.stub.request.*;
import com.qiaofang.collectmanage.stub.response.*;
import com.qiaofang.common.model.page.PageDTO;
import com.qiaofang.common.response.CommonResponse;
import com.qiaofang.collectmanage.stub.request.GetElementRuleRequest;
import com.qiaofang.collectmanage.stub.request.ListElementRuleRequest;
import com.qiaofang.collectmanage.stub.request.SearchElementRulePageRequest;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import javax.validation.Valid;
import java.util.List;

/**
 * @author li.yi
 * @date 2018年6月29日
 */
public interface ElementRuleClient {

	public ElementRuleDTO getElementRuleById(Integer id);

	public ElementRuleDTO getElementRule(GetElementRuleDTO getElementRuleDTO);

	public void saveElementRule(SaveElementRuleDTO saveElementRuleDTO);

	public void updateElementRule(UpdateElementRuleDTO updateElementRuleDTO);

	public void removeElementRule( RemoveElementRuleDTO removeElementRuleDTO);

	public List<ElementRuleDTO> listElementRule(ListElementRuleDTO elementRuleDTO);

	public SearchElementRulePageDTO searchElementRulePage(PageDTO pageDTO, SearchElementRulePostDTO searchElementRulePostDTO);

	public List<TestFieldsByIdDTO> testFieldsById(List<Integer> ids);

	public List<TestFieldsByIdDTO> testToolFieldsById(List<Integer> ids);

	public GetFieldsDTO getFields( String collectRuleUuid);

}
